<?php
/**
 * 用户登陆接口类
 * comfiger
 * 2015-12-26
 *
 **/
namespace Xijie\Controller;
use Think\Controller;

class TestController extends Controller {
	/**
	 * 微信生成二维码
	 **/
	public function weixin(){
		//echo D('Alipay')->CreateAlipaySign('20170223', '测试', '测试测试2', 100.00);
		$ordersn = "MamaGy_". date('YmdHis', time());
		$totle = 1;
		$httpContent = D('WeiXin')->weixinPayString('房卡押金', $ordersn, $totle);
		
		$file_get_contents = (array)simplexml_load_string($httpContent, 'SimpleXMLElement', LIBXML_NOCDATA); //xml对象
		
		if($file_get_contents['return_code'] == 'SUCCESS' && $file_get_contents['result_code'] == 'SUCCESS'){
			$wx_ordersn = $file_get_contents['prepay_id'];
			$codeurl = $file_get_contents['code_url'];
			//添加订单日志
			D('Paylog')->addOrderInfo(array(
				'order_sn' => $ordersn,
				'point' => $totle,
				'desc' => '房卡押金',
				'pay_id' => 2,
				'createtime' => time()
			));
			
			$data = array(
				'err_code' => 'success',
				'ordersn' => $wx_ordersn, //订单
				'trade_type' => $file_get_contents['trade_type'],
				'code_url' => $this->generateQRfromGoogle($codeurl)
			);
		}else{
			$data = array(
				'err_code' => 'fail'
			);
		}
		
		echo json_encode($data);
	}
	
	/**
	 * 支付宝生成二维码
	 **/
	public function alipay(){
		$array = array(
            "out_trade_no" => "MamaGy_". date('YmdHis', time()),
            "total_amount" => "0.1",
            "subject"      => "房卡押金",
            "body"         => "房卡押金"
        );
		
		$result = D('Alipay')->createAction($array);
		if($result['code'] = 10000){
			Vendor('phpqrcode.phpqrcode');
			$errorCorrectionLevel =3;//容错级别 
			$matrixPointSize = 4;//生成图片大小 
			$object = new \QRcode();
			ob_end_clean();
			$object->png($result['qr_code'], false, $errorCorrectionLevel, $matrixPointSize, 2);
		}
	}
	
	/** 
	 * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本，具体可以查看二维码数据格式】 
	 * @param string $chl 二维码包含的信息，可以是数字、字符、二进制信息、汉字。 不能混合数据类型，数据必须经过UTF-8 URL-encoded 
	 * @param int $widhtHeight 生成二维码的尺寸设置 
	 * @param string $EC_level 可选纠错级别，QR码支持四个等级纠错，用来恢复丢失的、读错的、模糊的、数据。 
	 * L-默认：可以识别已损失的7%的数据 
	 * M-可以识别已损失15%的数据 
	 * Q-可以识别已损失25%的数据 
	 * H-可以识别已损失30%的数据 
	 * @param int $margin 生成的二维码离图片边框的距离 
	 */ 
	private function generateQRfromGoogle($chl,$widhtHeight ='150',$EC_level='L',$margin='0'){ 
		$erCodeUrl = 'http://qr.liantu.com/api.php?text='. $chl . '%26m=' .$widhtHeight;
		return $erCodeUrl;
	}
	
}